package com.example.demo1.adapter

import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.example.demo1.R
import com.example.demo1.activity.typeNum
/**
 * 文章列表左侧竖直导航栏适配器
 * **/
class OptionAdapter(var list: List<String>) : RecyclerView.Adapter<OptionAdapter.MyViewHolder>() {
    var selectedPosition: Int = RecyclerView.NO_POSITION
    init {

        selectedPosition = 1
    }
    // 当前选中的位置，默认没有选中


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        val view: View =
            LayoutInflater.from(parent.context).inflate(R.layout.select_artitle_item, parent, false)
        return MyViewHolder(view)
    }

    override fun getItemCount(): Int {
        return list.size
    }

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
        val item = list[position]

        // 设置文字
        holder.textView.text = item

        // 根据选中状态更新样式
        holder.bind(position == selectedPosition)


        // 点击事件
        holder.itemView.setOnClickListener {
            // 如果点击的是同一个位置，则直接返回，不执行操作
            if (selectedPosition == position) return@setOnClickListener

            // 记录之前选中的位置
            val previousPosition = selectedPosition

            // 更新当前选中的位置
            selectedPosition = position
            typeNum.value=position
            // 刷新之前选中的位置
            notifyItemChanged(previousPosition)

            // 刷新当前选中的位置
            notifyItemChanged(selectedPosition)


        }
        if (position == selectedPosition) {
            holder.bind(true)
        }
    }

    class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val textView: TextView = itemView.findViewById(R.id.tv_option)
        val view: View = itemView.findViewById(R.id.blue_indicator)

        fun bind(isSelected: Boolean) {
            // 根据选中状态更新样式
            if (isSelected) {
                view.visibility = View.VISIBLE // 显示蓝色条
                textView.setTextColor(ContextCompat.getColor(itemView.context, R.color.color_2196F3)) // 字体变蓝
                itemView.setBackgroundColor(ContextCompat.getColor(itemView.context, R.color.white)) // 背景变白
            } else {
                view.visibility = View.GONE // 隐藏蓝色条
                textView.setTextColor(ContextCompat.getColor(itemView.context, R.color.color_9696a0)) // 字体变黑
                itemView.setBackgroundColor(Color.TRANSPARENT) // 背景透明
            }
        }
    }
}
